Component org.nuxeo.ecm.platform.video.tools.commandlines
In bundle org.nuxeo.ecm.platform.video
Requirements
Resolution Order
568
The resolution order represents the order in which this component has been resolved by the Nuxeo Runtime
framework.
You can influence this order by adding "require" tags in your component declaration, to make sure it is resolved after another component.
Contributions
XML Source
<component name="org.nuxeo.ecm.platform.video.tools.commandlines">
<require>org.nuxeo.ecm.platform.commandline.executor.service.defaultContrib</require>
<extension
target="org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent"
point="command">
<command name="videoClosedCaptionsExtractor" enabled="true">
<commandLine>ccextractor</commandLine>
<parameterString>#{sourceFilePath} -out=#{outFormat} -trim -o #{outFilePath}
</parameterString>
<installationDirective>You need to install ccextractor.</installationDirective>
</command>
<command name="videoPartClosedCaptionsExtractor" enabled="true">
<commandLine>ccextractor</commandLine>
<parameterString>#{sourceFilePath} -out=#{outFormat} -startat #{startAt} -endat #{endAt} -trim -o #{outFilePath}
</parameterString>
<installationDirective>You need to install ccextractor.</installationDirective>
</command>
<command name="videoConcat" enabled="true">
<commandLine>ffmpeg</commandLine>
<parameterString>-y -f concat -safe 0 -i #{listFilePath} -c copy #{outFilePath}</parameterString>
<installationDirective>You need to install ffmpeg.</installationDirective>
</command>
<!-- This one is very fast, but you may miss frames. Use it when you are sure you'll get the correct cut -->
<command name="videoSlicerByCopy" enabled="true">
<commandLine>ffmpeg</commandLine>
<parameterString>-y -i #{sourceFilePath} -ss #{startAt} -t #{duration} -c copy #{outFilePath}</parameterString>
<installationDirective>You need to install ffmpeg.</installationDirective>
</command>
<!-- This on is the basic slicing. It re-encodes the video, so it it is slower than videoSlicerCopy -->
<command name="videoSlicer" enabled="true">
<commandLine>ffmpeg</commandLine>
<parameterString>-y -i #{sourceFilePath} -ss #{startAt} -t #{duration} #{outFilePath}</parameterString>
<installationDirective>You need to install ffmpeg.</installationDirective>
</command>
<!-- This enables video slicing starting from the specific time -->
<command name="videoSlicerStartAt" enabled="true">
<commandLine>ffmpeg</commandLine>
<parameterString>-y -i #{sourceFilePath} -ss #{startAt} #{outFilePath}</parameterString>
<installationDirective>You need to install ffmpeg.</installationDirective>
</command>
<!-- Slices in n segment of #duration each. outFilePath is an expression
(OUT%03d.mp4 for example) so ffmpeg creates one file/segment -->
<command name="videoSlicerSegments" enabled="true">
<commandLine>ffmpeg</commandLine>
<parameterString>-y -i #{sourceFilePath} -map 0 -c copy -f segment -segment_time #{duration} -reset_timestamps 1
#{outFilePath}
</parameterString>
<installationDirective>You need to install ffmpeg.</installationDirective>
</command>
<!-- filterComplex is the full filter. For example: "overlay=10:10" -->
<command name="videoWatermarkWithPicture" enabled="true">
<commandLine>ffmpeg</commandLine>
<parameterString>-y -i #{sourceFilePath} -i #{pictureFilePath} -filter_complex #{filterComplex} #{outFilePath}
</parameterString>
<installationDirective>You need to install ffmpeg.</installationDirective>
</command>
</extension>
</component>